home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1996 #6 / Amiga Plus CD - 1996 - No. 06.iso / pd / grafik / imageengineerv3.1 / extra / dopus5 / arexx / ie_convert.dopus5 next >
Text File  |  1996-07-14  |  5KB  |  191 lines

  1. /*
  2. ** $VER: IE_Convert.dopus5 1.0 (14/7 Stockholm/Sweden)
  3. ** Copyright © 1996 by Patrik M Nydensten 
  4. **
  5. ** Converts all selected image files in the SRCE directory and
  6. ** saves them into DEST directory.
  7. ** Requires Image Engineer 3.0 or higher and DOpus 5.0 or higher.
  8. ** Call: (AREXX) DOpus5:arexx/IE_Convert.dopus5 {Qp}
  9. */
  10.  
  11. CFG_PALETTE_DIR = '"DH1:Works/Palette/"'
  12.  
  13. options results
  14. lf='0a'x
  15.  
  16. parse arg portname
  17. if left(portname,5)='DOPUS' then address value portname
  18. else exit
  19.  
  20. if ~show(ports,'IMAGEENGINEER') then do
  21.      dopus request '"Could not locate IEs arexx port!" OK'
  22.   exit                 
  23. end                 
  24.  
  25. /* Get info from DOpus */
  26.  
  27. lister query source                /* get source handler */
  28. handle = result
  29. if RC~= 0 then exit
  30.  
  31. lister query dest                  /* get destination handler */
  32. dhandle = result
  33. if RC~= 0 then do
  34.   dopus request '"No DEST directory selected" OK'
  35.   exit
  36. end
  37.  
  38. lister query handle path           /* get current source path */
  39. src_path = strip(result,B,'"')
  40.  
  41. lister query dhandle path           /* get current dest path */
  42. dst_path = strip(result,B,'"')
  43.  
  44. lister query handle selfiles ':'   /* get selected file names */
  45. sel_files = result
  46.  
  47. lister query handle numselfiles    /* get number of selected files */
  48. num_files = result
  49. if num_files = 0 then exit
  50.  
  51. /* Get info from IE */
  52.  
  53. address 'IMAGEENGINEER'
  54.  
  55. IE_TO_FRONT
  56.  
  57. 'GET_FILE_TYPE "Select destination file format."'
  58. if RC~= 0 then do
  59.   address value portname
  60.   dopus front
  61.   dopus request '"User did not select file type!" OK'
  62.   exit
  63. end
  64. else FileType = result
  65.  
  66. 'REQUEST' '"Would you like to save rendered or 24bit image?"' '" Render | 24bit "'
  67. do_render = result
  68.  
  69. if do_render = 1 then do /* get render info */
  70.   'RENDER_GET "Set render options."'
  71.   if RC~= 0 then do
  72.     address value portname
  73.     dopus front
  74.     dopus request '"User did not select render options!" OK'
  75.     exit
  76.   end
  77.   else RenderOptions = result
  78.  
  79.   if word(RenderOptions,5) = 0 then do  /* let user pick lock-palette */
  80.     'GET_FILE "Select a palette to lock." "Use"' CFG_PALETTE_DIR
  81.     if RC~= 0 then do
  82.       address value portname
  83.       dopus front
  84.       dopus request '"User did not select lock-palette!" OK'
  85.       exit
  86.     end
  87.     else do_palette = result
  88.   end /* end of pick lock-palette */
  89. end  /* end of get render info */
  90.  
  91. /* Start process */
  92.  
  93. address value portname
  94.  
  95. dopus front
  96.  
  97. lister set handle progress num_files 'Converting images...'
  98.  
  99. do i = 1 to num_files  /* convert loop */
  100.  
  101.   address value portname
  102.  
  103.   parse var sel_files image_file ':' sel_files
  104.   image_file = strip(image_file,B,'"')
  105.  
  106.   lister set handle progress name image_file  /* update progress display */
  107.   lister query handle abort                   /* check if aborted */
  108.   if result then do
  109.     lister clear handle progress  /* exit progress display mode */
  110.     lister refresh handle 'full'
  111.     lister refresh dhandle 'full'
  112.     lister read dhandle dst_path force
  113.     dopus front
  114.     dopus request '"User aborted..." OK'
  115.     lister clear handle abort
  116.     exit
  117.   end
  118.  
  119.   nil = convert(image_file)
  120.  
  121.   address value portname
  122.   lister set handle progress count i    /* update progress display */
  123.   lister refresh handle full            /* update lister display */
  124.  
  125. end  /* end of load loop */
  126.  
  127. lister clear handle progress        /* exits progress display mode */
  128. lister refresh handle 'full'        /* update source */
  129. lister refresh dhandle 'full'       /* update dest */
  130. lister read dhandle dst_path force
  131.  
  132. dopus front
  133.  
  134. exit
  135.  
  136. Convert:
  137.   parse arg file
  138.   address 'IMAGEENGINEER'                                               
  139.  
  140.   file_ext = '.'||word(strip(filetype),1)
  141.  
  142.   'OPEN "'||src_path||file||'" 24'
  143.   if (RC ~= 0) then do
  144.     address value portname
  145.     dopus request '"Error when loading image' file '!" OK'
  146.   end
  147.   else do
  148.     Project = result
  149.  
  150.     if do_render = 1 then do  /* render image */
  151.       if do_palette~='DO_PALETTE' then do
  152.         'LOAD_PALETTE' Project '"'||do_palette'"'
  153.         if (RC ~= 0) then do
  154.           address value portname
  155.           dopus request '"Error when loading lock-palette:'||lf||do_palette||lf||'Processing image anyway." OK'
  156.           address 'IMAGEENGINEER'
  157.         end
  158.       end
  159.       'RENDER_SET' Project RenderOptions
  160.       'RENDER' Project 'QUIET'
  161.  
  162.       'SAVE' Project '"'||dst_path||file||file_ext||'"' '"'||filetype||'"'
  163.       if (RC ~= 0) then do
  164.         address value portname
  165.         dopus request '"Error when saving image' file '!" OK'
  166.         address 'IMAGEENGINEER'
  167.       end
  168.       else do
  169.         address value portname
  170.         lister select handle '"'||image_file||'"' off
  171.       end
  172.     end
  173.     else do  /* do not render image */
  174.       'SAVE_DATA' Project '"'||dst_path||file||file_ext||'"' '"'||filetype||'"'
  175.       if (RC ~= 0) then do
  176.         address value portname
  177.         dopus request '"Error when saving image' file '!" OK'
  178.         address 'IMAGEENGINEER'
  179.       end
  180.       else do
  181.         address value portname
  182.         lister select handle '"'||image_file||'"' off
  183.       end
  184.     end
  185.     
  186.     address 'IMAGEENGINEER'
  187.     'CLOSE' Project
  188.   end
  189.  
  190. return nil                                                           
  191.